At present, there is an interface standard adopted between a CPU and peripheral equipment developed by a PCI SIG (peripheral component interconnect special interest group) in many information processing devices.
They can be, for example, a “PCI local bus specification”, a “PCI-X specification”, a “PCI-Express specification”, etc. The patent document 1 discloses the technology relating to a PCI bridge. The patent document 2 discloses the technology of a PCI bus system.
According to the specifications, for example, I/O space and memory space can be used as space to which a register to be used for control of a PCI device from a CPU is assigned.
The I/O space is used in accordance with old specifications based on the specifications of the architecture of a PC/AT compatible machine to secure the compatibility with a PC/AT (personal computer/advanced technology) compatible machine. Therefore, the upper limit of the size in which an I/O space can be assigned is limited to 64 KB.
For example, when there is a PCI bridge, the minimum assignment unit of the I/O space to the PCI bridge is 4 KB. Therefore, the upper limit of the number of PCI bridges to which the I/O space can be assigned is restricted to 16 (=64 KB/4 KB).
It is the restriction by the specification of the “PCI local bus specification, Revision 2.3”.
Conventionally, a maximum of 32 PCI devices can be connected to one bus. However, there has recently been a decreasing number of PCI devices connectable to a PCI bridge to keep up with a higher transmission speed of PCI devices.
For example, with a bus of PCI-X 100 MHz, the number of connectable devices is 2, and with a bus of PCI-X 133 MHz, it is 1. In addition, under the specification of the PCI-Express the correspondence between the bridge and the device is one to one. In this case, the upper limit (16) of the number of bridges assignable to the I/O space is simply defined as the upper limit of the assignable devices.
In a large server system, there are a number of systems provided with a maximum of 128 PCI slots. However, if the above-mentioned restriction is applied as is, at most 16 PCI slots can be loaded.
Accordingly, a conventional system has to be loaded with a PCI device not requesting I/O space, or has to perform an operation by limiting the PCI devices to those operable in memory space without practically using any I/O space. In addition, there are only a few kinds of PCI devices not requesting I/O space, and it has been hard to configure a system only by PCI devices not requesting I/O space.
Thus, a PCI device requesting I/O space but capable of performing an operation without actually using I/O space, that is, a PCI device capable of performing an operation using I/O space or memory space (hereinafter referred to simply as a “PCI device”), has been proposed by various PCI device vendors.
However, the PCI device has the following problems.
For example, an operating system determines whether or not the PCI device is requesting the assignment of I/O space by checking whether or not there is a base address register requesting I/O space stored in a PCI configuration register provided in the PCI device.
Accordingly, any PCI device having a base address register requesting I/O space is supposed to request I/O space.
As a result, when I/O space cannot be assigned to a new PCI device due to insufficient I/O space to be assigned, there is no countermeasure other than disabling the PCI device by performing an error handling process, thereby requiring a special system for preventing the operating system from using the I/O space.
For Windows (registered trademark), an inf file as a system-defined file is used. Through the inf file, the operating system can be informed that the PCI device does not use I/O space. If it is determined that the PCI device does not use I/O space, the operating system ignores the presence, if any, of a base address register requesting the I/O space, and performs an operation by as signing only memory space without assigning I/O space to the PCI device.
For Linux, a driver not requesting I/O space is prepared for the PCI device.
However, for example, when Windows (registered trademark) is installed, the above-mentioned inf file is not included in CD-ROM etc. for installation. Therefore, the operating system cannot be informed through the inf file that the PCI device does not use I/O space.
Similarly, during the installation of Linux, a driver without using I/O space is not included. Therefore, the PCI device requires the assignment of I/O space during installation.
After all, since there are restrictions on the use of an inf file and a special driver without a request of I/O space, there is still the problem that an accessible PCI device cannot be effectively used although any of I/O space and memory space is utilized.
Patent Document 1: Japanese Laid-open Patent Publication No. 11-288400
Patent Document 2: Japanese Laid-open Patent Publication No. 2002-032324